package qcmPlus.interceptor;

import java.util.Map;

import org.apache.log4j.Level;
import org.apache.log4j.Logger;

import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;

public class Stagiaire extends AbstractInterceptor {

	private static final long serialVersionUID = 1L;

	private static Logger logger = Logger.getLogger(Stagiaire.class);

	// methode executee avant l'action
	public void init() {
		logger.log(Level.INFO, "Avant la methode d'action");
	}

	// methode de l'intercepteur
	public String intercept(ActionInvocation invocation) throws Exception {
		logger.log(Level.INFO, "Dans la methode intercept");

		// recuperer les objets de la session
		Map<String, Object> session = invocation.getInvocationContext()
				.getSession();

		String name =  (String) session.get("utilisateur");

		if (name == null) {
			// return "authentification";
			logger.log(Level.INFO, "authentification null");
			return "redirectLogin";
		} else {
			// verifier l'authentification
			// boolean

			if (name=="stagiaire") 
			{
				// l'utilisateur est authentifie,continuer l'action
				logger.log(Level.INFO, "authentification ok");
				return invocation.invoke();
			} else {
				// l'utilisateur n'est pas authentifie retourner sur la page
				// d'authentification
				// return "authentification";
				logger.log(Level.INFO, "echec d'authentification");
				return "redirectLogin";
			}
		}
	}

	// methode executee apres l'action
	public void destroy() {
		logger.log(Level.INFO, "Apres la methode d'action : methode destroy");
	}

}
